<?php

Class setcontents {

         function getResult($query) {
        global $main;
	$oid = mysql_query($query);
	if (!$oid) {
		setcontents::setTemplate();
                setcontents::setMenu("Errore nel database. Ci scusiamo per il disagio".mysql_error(),"alert");
                setcontents::setBody(null);
                $main->close();
                exit;
	}

	do {               
		$data = mysql_fetch_assoc($oid);
		if ($data) {
			$result[] = $data;
		}
	} while ($data);
        
	return $result;
        }

         function setTemplate(){
            global $main;
            if (isset($_SESSION['user'])){
                switch ($_SESSION['user']['privilegi'][0]['gruppo']){
                    case 'amministratore':
                        $main=new Template ("dtml/indexadmin.html");                        
                        break;

                    case 'backoffice':
                        $main=new Template ("dtml/indexadmin.html");                        
                        break;

                    default: //utente consumer oppure errore db in auth.inc.php. se si specifica consumer,
                             // se ci fossero errori di inizializzazione nella sessione, non visualizzerei il msg d'errore.
                        $main=new Template ("dtml/indexconsumer.html");
                        break;
                }
            }else{
                $main=new Template ("dtml/index.html");                
            }
        }

         function setMenu($notification,$style) {
                global $main;
                if (isset($_SESSION['user'])){
                $access = new Template("dtml/framelogout.html" );//utente registrato, carico logout 
                
                switch ($_SESSION['user']['privilegi'][0]['gruppo']){

                    case 'amministratore' : //login effettuato con successo
                        $message="Area amministrazione. Operatore: ".stripslashes($_SESSION['user']['nome'])." ".stripslashes($_SESSION['user']['cognome']);
                        break;

                    case 'backoffice' : //accesso al sito all'interno della stessa sessione
                        $message="Area backoffice. Operatore: ".stripslashes($_SESSION['user']['nome'])." ".stripslashes($_SESSION['user']['cognome']);
                        break;

                    case 'consumer' : //accesso al sito all'interno della stessa sessione
                        
                        $message="Utente: ".stripslashes($_SESSION['user']['nome'])." ".stripslashes($_SESSION['user']['cognome']);
                        break;                    
                        }

                }else{//utente non loggato
                   
                    $message="Benvenuto";
                    $access= new Template("dtml/framelogin.html");//utente non registrato, carico form login
                    
                }

                $url_attuale = $_SERVER["SCRIPT_NAME"];
                $nome_script = substr($url_attuale,strrpos($url_attuale, '/')+1);
                
                if(($nome_script == "catalogo.php") || ($nome_script == "scheda_prodotto.php") ||  ($nome_script == "scheda_categoria.php") || ($nome_script == "scheda_marca.php") || ($nome_script == "carrello.php")){
                    $catalogo = new Template("dtml/menu_catalogo.html");

                    $resultM = setcontents::getResult(
                            "SELECT id,nome
                               FROM marca
                           ORDER BY nome");

                    $resultC = setcontents::getResult(
                            "SELECT id,nome
                               FROM categoria
                           ORDER BY nome");

                    $catalogo->setContent("menu_marca", $resultM);
                    $catalogo->setContent("menu_categoria", $resultC);
                    $main->setContent("catalogo",$catalogo->get());
                }

                if(!isset($style)){ // default per $style
                    $style = "message";
                }
                    $main->setContent("message",$message);
                    $main->setContent("notification", $notification);
                    $main->setContent("style",$style);
                    $main->setContent("access",$access->get());
                    $main->setContent("menu",$_SESSION['user']['privilegi']);                    
                }

                 function setBody ($body){
                    global $main;
                    if (!isset($body)){
                            switch ($_SESSION['user']['privilegi'][0]['gruppo']) {

                                case 'consumer':
                                    $body=new Template("dtml/home_consumer.html");
                                    // conto il numero di prodotti presenti nel carrello dell'utente
                                    $oid1 = mysql_query("
                                        SELECT *
                                          FROM carrello
                                         WHERE email_utente = '{$_SESSION['user']['email']}'");

                                    $num_carrello = mysql_num_rows($oid1);
                                    // conto il numero di servizi prenotati dall'utente
                                    $oid2 = mysql_query("
                                        SELECT *
                                          FROM prenotazione
                                         WHERE email_utente = '{$_SESSION['user']['email']}'");

                                    $num_servizi = mysql_num_rows($oid2);

                                    $body->setContent("nome",stripslashes($_SESSION['user']['nome']));
                                    $body->setContent("servizi",$num_servizi);
                                    $body->setContent("prodotti",$num_carrello);
                                    break;

                                case 'backoffice':
                                    $body=new Template("dtml/home_backoffice.html");//sample.html template di prova
                                    $orario=setcontents::getResult("SELECT * FROM orario");
                                    $limit=strtotime(date("d-m-Y",time()+($orario['or_ch_pm'])));//timestamp corrispondente all'orario di chiusura in data odierna
                                    $today_date=time();
                                    $oid=mysql_query("DELETE FROM prenotazione WHERE prenotazione.data_pren < '{$today_date}'");//elimino le prenotazioni la cui data precede quella odierna
                                    if (!$oid){
                                        $message="Errore db nell'eliminazione vecchie prenotazioni";
                                        $style="alert";
                                        displaydefault();
                                    }
                                    $prenotazioni = setcontents::getResult("SELECT utente.nome,utente.cognome, email_utente,
                                            servizio_erogato.nome as servizio, servizio_erogato.durata, servizio_erogato.prezzo,prenotazione.data_op,prenotazione.data_pren
                                            FROM
                                            prenotazione
                                            LEFT JOIN
                                            servizio_erogato
                                            ON
                                            prenotazione.id_serv_erog=servizio_erogato.id
                                            LEFT JOIN
                                            utente
                                            ON
                                            prenotazione.email_utente=utente.email
                                            WHERE prenotazione.data_pren<'{$limit}' ORDER BY prenotazione.data_pren");//prenotazioni effettuate

                                    $prodotti = setcontents::getResult(
                                        "SELECT prodotto.id, prodotto.nome,prodotto.quantita,
                                                prodotto.prezzo, prodotto.descrizione, marca.nome as marca
                                           FROM prodotto
                                      LEFT JOIN marca
                                             ON prodotto.marca = marca.id
                                      LEFT JOIN carrello
                                             ON id_prod = prodotto.id
                                          WHERE prodotto.quantita < '10'
                                       ORDER BY prodotto.quantita");

                                    $body->setContent("prenotazioni",$date_list);
                                    $body->setContent("prodotti",$prodotti);
                                    break;

                                case 'amministratore':
                                    $body=new Template("dtml/home_admin.html");
                                    // carico i prodotti che stanno per esaurirsi
                                    $prodotti = setcontents::getResult(
                                        "SELECT prodotto.id, prodotto.nome,prodotto.quantita,
                                                prodotto.prezzo, prodotto.descrizione, marca.nome as marca
                                           FROM prodotto
                                      LEFT JOIN marca
                                             ON prodotto.marca = marca.id
                                      LEFT JOIN carrello
                                             ON id_prod = prodotto.id
                                          WHERE prodotto.quantita < '10'
                                       ORDER BY prodotto.quantita");

                                    $oid = mysql_query("
                                        SELECT *
                                          FROM reg_conf");

                                    $non_conf = mysql_num_rows($oid);

                                    $orario=setcontents::getResult("SELECT * FROM orario");
                                    $limit=date("H-i-s",time());//in questo modo calcolo il time stamp del giorno attuale alle ore 0:00.
                                    list($ore,$minuti,$secondi)=explode("-",$limit);
                                    $limit=time()-(($ore*3600)+($minuti*60)+$secondi);//in questo modo calcolo il time stamp del giorno attuale alle ore 0:00.
                                    $today_date=time();
                                    $oid=mysql_query("DELETE FROM prenotazione WHERE prenotazione.data_pren < '{$today_date}'");//elimino le prenotazioni la cui data precede quella odierna
                                    if (!$oid){
                                        $message="Errore db nell'eliminazione vecchie prenotazioni";
                                        $style="alert";
                                        displaydefault();
                                    }
                                    $prenotazioni = setcontents::getResult("SELECT utente.nome,utente.cognome, email_utente,
                                            servizio_erogato.nome as servizio, servizio_erogato.durata, servizio_erogato.prezzo,prenotazione.data_op,prenotazione.data_pren
                                            FROM
                                            prenotazione
                                            LEFT JOIN
                                            servizio_erogato
                                            ON
                                            prenotazione.id_serv_erog=servizio_erogato.id
                                            LEFT JOIN
                                            utente
                                            ON
                                            prenotazione.email_utente=utente.email
                                            WHERE prenotazione.data_pren<'{$limit}' ORDER BY prenotazione.data_pren");//prenotazioni effettuate

                                    $oid2 = mysql_query("
                                        SELECT *
                                          FROM storico_acquisti");

                                    $acquisti = mysql_num_rows($oid2);

                                    $body->setContent("prodotti",$prodotti);
                                    $body->setContent("non_confermati",$non_conf);
                                    $body->setContent("acquisti",$acquisti);
                                    $body->setContent("prenotazioni",$prenotazioni);
                                    break;

                                default:
                                    $body=new Template("dtml/home_public.html");
                                    $slidermain=new Template ("dtml/slidermain.html");
                                    $main->setContent("slidermain",$slidermain->get());

                            }
                        }
                        if (basename($_SERVER['SCRIPT_NAME'])=="index.php" || basename($_SERVER['SCRIPT_NAME'])=="login.php"){
                            $slidermain=new Template ("dtml/slidermain.html");
                            $main->setContent("slidermain",$slidermain->get());
                        }
                        
                    $main->setContent("body",$body->get());
                }

}

?>
